Network Namespaces
Network Namespace — bu Linux yadro tizimidagi imkoniyat bo‘lib, u orqali bir nechta virtual tarmoq muhitlari yaratish mumkin. Har bir namespace o‘zining mustaqil:
- IP manzillari
- interfeys (interface)
- routing jadvallari (routing tables)
- iptables konfiguratsiyasi
bilan ishlaydi. Bu konteyner texnologiyalari (Docker, LXC) asosida turgan eng muhim komponentlardan biridir.
🎯 Oddiy qilib aytganda: network namespace — bu alohida "virtual tarmoq dunyosi". Bitta tizimda bir nechta tarmoq muhitlarini bir-biridan izolyatsiya qilgan holda yuritish imkonini beradi.
Yaratish va Asosiy Buyruqlar
Namespace yaratish:
sudo ip netns add myns
Bu myns nomli yangi network namespace yaratadi.
Mavjud namespacelarni ko‘rish:
ip netns list
Namespace’ni o‘chirish:
sudo ip netns del myns
Virtual Ethernet (veth) Pair bilan ulash
Namespace ichida tarmoq aloqasini tashkil qilish uchun veth (virtual Ethernet) interfeyslar juftligi yaratiladi.
Misol:
# veth juftlik yaratish
dudo ip link add veth0 type veth peer name veth1
# veth0 asosiy namespace’da, veth1 esa myns’da
sudo ip link set veth1 netns myns
# interfeyslarni yoqish
sudo ip link set veth0 up
sudo ip netns exec myns ip link set veth1 up
# IP berish
sudo ip addr add 10.200.1.1/24 dev veth0
sudo ip netns exec myns ip addr add 10.200.1.2/24 dev veth1
Endi veth0 va veth1 bir-biri bilan gaplasha oladi.
Ping bilan sinash
sudo ip netns exec myns ping 10.200.1.1
Agar hammasi to‘g‘ri bo‘lsa, ping ishlaydi.
Amaliy Foyda
- Docker konteynerlar ichida izolyatsiyalangan tarmoq muhitlari yaratish
- Virtual laboratoriyalar qurish
- Xavfsizlikni oshirish (segregatsiya)
- Simulyatsiya va testlash uchun ideal
Xulosa
Network namespaces orqali siz bir kompyuterda bir nechta mustaqil tarmoq muhitini yaratishingiz mumkin. Bu zamonaviy tizim arxitekturasi, DevOps va container dunyosining asosi hisoblanadi.